<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>LibTools: CIoPortService类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">LibTools
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.16 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','搜索');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pub-attribs">Public 属性</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="class_c_io_port_service-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">CIoPortService类 参考<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a>&gt;</code></p>
<div class="dynheader">
类 CIoPortService 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_c_io_port_service.png" usemap="#CIoPortService_map" alt=""/>
  <map id="CIoPortService_map" name="CIoPortService_map">
<area href="class_c_epoll_service.html" alt="CEpollService" shape="rect" coords="0,56,98,80"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a56a36acfa1bc12143465fb5bcd235a5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a56a36acfa1bc12143465fb5bcd235a5a">CIoPortService</a> (<a class="el" href="_sock_data_8h.html#ae8573b45542da05c99e8e2154032d606">IoCompleteFunc</a> func)</td></tr>
<tr class="separator:a56a36acfa1bc12143465fb5bcd235a5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3a26ecd2d08e394ff350d814dc279be"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#af3a26ecd2d08e394ff350d814dc279be">~CIoPortService</a> ()</td></tr>
<tr class="separator:af3a26ecd2d08e394ff350d814dc279be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc1a07c4cf6e9aa6f2a00d157dfd9eed"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_c_sock_error.html">CSockError</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#afc1a07c4cf6e9aa6f2a00d157dfd9eed">Init</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock, bool isServer=false)=0</td></tr>
<tr class="separator:afc1a07c4cf6e9aa6f2a00d157dfd9eed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3de4a75423e43c4100831feee1c67406"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a3de4a75423e43c4100831feee1c67406">Close</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock)=0</td></tr>
<tr class="memdesc:a3de4a75423e43c4100831feee1c67406"><td class="mdescLeft">&#160;</td><td class="mdescRight">关闭描述符  <a href="class_c_io_port_service.html#a3de4a75423e43c4100831feee1c67406">更多...</a><br /></td></tr>
<tr class="separator:a3de4a75423e43c4100831feee1c67406"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56a9ae4bb89bd85e21ae5507e3c6b093"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a56a9ae4bb89bd85e21ae5507e3c6b093">Run</a> ()=0</td></tr>
<tr class="memdesc:a56a9ae4bb89bd85e21ae5507e3c6b093"><td class="mdescLeft">&#160;</td><td class="mdescRight">运行服务  <a href="class_c_io_port_service.html#a56a9ae4bb89bd85e21ae5507e3c6b093">更多...</a><br /></td></tr>
<tr class="separator:a56a9ae4bb89bd85e21ae5507e3c6b093"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8eb92d255bda145631e1dc57e42d3dba"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a8eb92d255bda145631e1dc57e42d3dba">Run_One</a> ()=0</td></tr>
<tr class="memdesc:a8eb92d255bda145631e1dc57e42d3dba"><td class="mdescLeft">&#160;</td><td class="mdescRight">运行一次服务  <a href="class_c_io_port_service.html#a8eb92d255bda145631e1dc57e42d3dba">更多...</a><br /></td></tr>
<tr class="separator:a8eb92d255bda145631e1dc57e42d3dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87b609526def283ffb20cc4b4c082473"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a87b609526def283ffb20cc4b4c082473">IsStop</a> () const =0</td></tr>
<tr class="memdesc:a87b609526def283ffb20cc4b4c082473"><td class="mdescLeft">&#160;</td><td class="mdescRight">服务是否停止  <a href="class_c_io_port_service.html#a87b609526def283ffb20cc4b4c082473">更多...</a><br /></td></tr>
<tr class="separator:a87b609526def283ffb20cc4b4c082473"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e27edba8096659e67f2f275eeeba984"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a4e27edba8096659e67f2f275eeeba984">IsInit</a> () const =0</td></tr>
<tr class="separator:a4e27edba8096659e67f2f275eeeba984"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88ce9281be3952a469f8c3b6bf0f9d5b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a88ce9281be3952a469f8c3b6bf0f9d5b">NotifyStop</a> ()=0</td></tr>
<tr class="memdesc:a88ce9281be3952a469f8c3b6bf0f9d5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">通知停止服务  <a href="class_c_io_port_service.html#a88ce9281be3952a469f8c3b6bf0f9d5b">更多...</a><br /></td></tr>
<tr class="separator:a88ce9281be3952a469f8c3b6bf0f9d5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae247b9ad53c577481a6a17713e6a0685"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#ae247b9ad53c577481a6a17713e6a0685">Shutdown</a> ()=0</td></tr>
<tr class="memdesc:ae247b9ad53c577481a6a17713e6a0685"><td class="mdescLeft">&#160;</td><td class="mdescRight">停止服务,该函数会等待所有的线程退出  <a href="class_c_io_port_service.html#ae247b9ad53c577481a6a17713e6a0685">更多...</a><br /></td></tr>
<tr class="separator:ae247b9ad53c577481a6a17713e6a0685"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9c6a13fde3ceae6b494568242681714"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#aa9c6a13fde3ceae6b494568242681714">PostAcceptEx</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;svrSock, <a class="el" href="class_c_socket.html">CSocket</a> &amp;cliSock, const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker=<a class="el" href="tools_8h.html#ab689500aaec0db066e3ac9483d3fe425">NullPtr</a>)=0</td></tr>
<tr class="memdesc:aa9c6a13fde3ceae6b494568242681714"><td class="mdescLeft">&#160;</td><td class="mdescRight">投递一个接收连接请求  <a href="class_c_io_port_service.html#aa9c6a13fde3ceae6b494568242681714">更多...</a><br /></td></tr>
<tr class="separator:aa9c6a13fde3ceae6b494568242681714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9546027933d2fcfcdc31b9366308ec3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#af9546027933d2fcfcdc31b9366308ec3">PostConnectEx</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock, const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker=<a class="el" href="tools_8h.html#ab689500aaec0db066e3ac9483d3fe425">NullPtr</a>)=0</td></tr>
<tr class="memdesc:af9546027933d2fcfcdc31b9366308ec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">投递一个连接请求  <a href="class_c_io_port_service.html#af9546027933d2fcfcdc31b9366308ec3">更多...</a><br /></td></tr>
<tr class="separator:af9546027933d2fcfcdc31b9366308ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ffa1d9379ae7595d2febd119f42a738"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a5ffa1d9379ae7595d2febd119f42a738">SetTimer</a> (<a class="el" href="_timer_info_8h.html#a3cdb46a4463fd5c4c305382491ab3e41">TimerInfo</a> &amp;tinfo)=0</td></tr>
<tr class="memdesc:a5ffa1d9379ae7595d2febd119f42a738"><td class="mdescLeft">&#160;</td><td class="mdescRight">设置定时器  <a href="class_c_io_port_service.html#a5ffa1d9379ae7595d2febd119f42a738">更多...</a><br /></td></tr>
<tr class="separator:a5ffa1d9379ae7595d2febd119f42a738"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a56a2a5a014ee11d4696eac5096d198"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a6a56a2a5a014ee11d4696eac5096d198">DelTimer</a> (<a class="el" href="_timer_info_8h.html#a3cdb46a4463fd5c4c305382491ab3e41">TimerInfo</a> &amp;tinfo)=0</td></tr>
<tr class="memdesc:a6a56a2a5a014ee11d4696eac5096d198"><td class="mdescLeft">&#160;</td><td class="mdescRight">删除定时器  <a href="class_c_io_port_service.html#a6a56a2a5a014ee11d4696eac5096d198">更多...</a><br /></td></tr>
<tr class="separator:a6a56a2a5a014ee11d4696eac5096d198"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac30315805f5476c9e5ff36f3fa542485"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#ac30315805f5476c9e5ff36f3fa542485">UpdateTimer</a> (<a class="el" href="_timer_info_8h.html#a3cdb46a4463fd5c4c305382491ab3e41">TimerInfo</a> &amp;tinfo)=0</td></tr>
<tr class="memdesc:ac30315805f5476c9e5ff36f3fa542485"><td class="mdescLeft">&#160;</td><td class="mdescRight">更新定时器  <a href="class_c_io_port_service.html#ac30315805f5476c9e5ff36f3fa542485">更多...</a><br /></td></tr>
<tr class="separator:ac30315805f5476c9e5ff36f3fa542485"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61ce383d1dc8faf0f821237e4cc438cf"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a61ce383d1dc8faf0f821237e4cc438cf">DeliveryWrite</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock, const char *first, const char *end, <a class="el" href="class_c_sock_addr.html">CSockAddr</a> *addr, const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker=<a class="el" href="tools_8h.html#ab689500aaec0db066e3ac9483d3fe425">NullPtr</a>)=0</td></tr>
<tr class="memdesc:a61ce383d1dc8faf0f821237e4cc438cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">投递一个写请求  <a href="class_c_io_port_service.html#a61ce383d1dc8faf0f821237e4cc438cf">更多...</a><br /></td></tr>
<tr class="separator:a61ce383d1dc8faf0f821237e4cc438cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a258367c891c1b3f4208c7b41e95b864d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a258367c891c1b3f4208c7b41e95b864d">DeliveryRecv</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock, char *first, char *end, <a class="el" href="class_c_sock_addr.html">CSockAddr</a> *addr, const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker=<a class="el" href="tools_8h.html#ab689500aaec0db066e3ac9483d3fe425">NullPtr</a>)=0</td></tr>
<tr class="memdesc:a258367c891c1b3f4208c7b41e95b864d"><td class="mdescLeft">&#160;</td><td class="mdescRight">投递一个接收请求  <a href="class_c_io_port_service.html#a258367c891c1b3f4208c7b41e95b864d">更多...</a><br /></td></tr>
<tr class="separator:a258367c891c1b3f4208c7b41e95b864d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b82286514aa89ecd2a7470047c4845e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a2b82286514aa89ecd2a7470047c4845e">Post</a> (const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker=<a class="el" href="tools_8h.html#ab689500aaec0db066e3ac9483d3fe425">NullPtr</a>)=0</td></tr>
<tr class="memdesc:a2b82286514aa89ecd2a7470047c4845e"><td class="mdescLeft">&#160;</td><td class="mdescRight">投递一个中断请求  <a href="class_c_io_port_service.html#a2b82286514aa89ecd2a7470047c4845e">更多...</a><br /></td></tr>
<tr class="separator:a2b82286514aa89ecd2a7470047c4845e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a250b7ebec0e43bda54858b198e66c867"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_sock_tools_8h.html#ac7875a7f6984241a06892f7041b4d30a">SOCKIDEN</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a250b7ebec0e43bda54858b198e66c867">GetFlagId</a> ()</td></tr>
<tr class="memdesc:a250b7ebec0e43bda54858b198e66c867"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取唯一socket标识符  <a href="class_c_io_port_service.html#a250b7ebec0e43bda54858b198e66c867">更多...</a><br /></td></tr>
<tr class="separator:a250b7ebec0e43bda54858b198e66c867"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bb17ecf133490bae0d660eeeff35f76"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a6bb17ecf133490bae0d660eeeff35f76">SetSocketBuffer</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock, <a class="el" href="class_c_basic_service.html">CBasicService</a> *oldService)</td></tr>
<tr class="memdesc:a6bb17ecf133490bae0d660eeeff35f76"><td class="mdescLeft">&#160;</td><td class="mdescRight">设置socket的tcp服务buffer  <a href="class_c_io_port_service.html#a6bb17ecf133490bae0d660eeeff35f76">更多...</a><br /></td></tr>
<tr class="separator:a6bb17ecf133490bae0d660eeeff35f76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedf29d5a0b744177d997d156068545bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#aedf29d5a0b744177d997d156068545bf">SetWriteLog</a> (bool bWriteLog)</td></tr>
<tr class="memdesc:aedf29d5a0b744177d997d156068545bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">设置日志输出函数  <a href="class_c_io_port_service.html#aedf29d5a0b744177d997d156068545bf">更多...</a><br /></td></tr>
<tr class="separator:aedf29d5a0b744177d997d156068545bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public 属性</h2></td></tr>
<tr class="memitem:af2c36a2bd4d03cb124cdd6c9bef5bb3c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_recursive_mutex.html">CRecursiveMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#af2c36a2bd4d03cb124cdd6c9bef5bb3c">_mutexDeque</a></td></tr>
<tr class="separator:af2c36a2bd4d03cb124cdd6c9bef5bb3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:aaba7ef56add86b61b7d3d95ac95b00bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#aaba7ef56add86b61b7d3d95ac95b00bc">SetIoBuffer</a> (<a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *io, <a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> status, const char *first, const char *end, <a class="el" href="class_c_sock_addr.html">CSockAddr</a> *addr, const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker)</td></tr>
<tr class="separator:aaba7ef56add86b61b7d3d95ac95b00bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31f5b0cd661829a0772d69f2558cf9c7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a31f5b0cd661829a0772d69f2558cf9c7">SetIoBuffer</a> (<a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *io, <a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> status, const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker)</td></tr>
<tr class="separator:a31f5b0cd661829a0772d69f2558cf9c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78ca0acac3a2f3ca5890cc9db01a2dfe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a78ca0acac3a2f3ca5890cc9db01a2dfe">ClearAllDeque</a> ()</td></tr>
<tr class="separator:a78ca0acac3a2f3ca5890cc9db01a2dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:a407c9ef3c1dba3149bfeee7a3efbbf01"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a407c9ef3c1dba3149bfeee7a3efbbf01">_bWriteLog</a></td></tr>
<tr class="separator:a407c9ef3c1dba3149bfeee7a3efbbf01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ff69b422ec8562a5dee6b8f7cef5cc0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a4ff69b422ec8562a5dee6b8f7cef5cc0">_bStop</a></td></tr>
<tr class="separator:a4ff69b422ec8562a5dee6b8f7cef5cc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a523d78403f114ad8b1750bf408f34084"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_sock_tools_8h.html#ac7875a7f6984241a06892f7041b4d30a">SOCKIDEN</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a523d78403f114ad8b1750bf408f34084">_dwFlagId</a></td></tr>
<tr class="separator:a523d78403f114ad8b1750bf408f34084"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd6cae804dc7cf92c7c79d9e0549c176"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tools_8h.html#a6a2b55a6391419ed0b7b9da06e094b4b">INT64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#abd6cae804dc7cf92c7c79d9e0549c176">_threadNum</a></td></tr>
<tr class="separator:abd6cae804dc7cf92c7c79d9e0549c176"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0c2ca982c8e1aa9f810291b7de79468"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_sock_data_8h.html#ae8573b45542da05c99e8e2154032d606">IoCompleteFunc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#aa0c2ca982c8e1aa9f810291b7de79468">_completeFunc</a></td></tr>
<tr class="separator:aa0c2ca982c8e1aa9f810291b7de79468"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4a7f39422d33ef77ca8ea89b749d613"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_sock_tools_8h.html#a65db86524d66ff5c871579e2dacf12ca">lpTimeoutCompleteFunc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#ae4a7f39422d33ef77ca8ea89b749d613">_timeoutFunc</a></td></tr>
<tr class="separator:ae4a7f39422d33ef77ca8ea89b749d613"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dc61fe79fcc2d07518bfa701bd2f779"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tools_8h.html#a01e895c2df346ffe662bbe69686d8d51">SYNCHANDLE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a3dc61fe79fcc2d07518bfa701bd2f779">_hWaitServerStop</a></td></tr>
<tr class="separator:a3dc61fe79fcc2d07518bfa701bd2f779"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a922c83ecaab9ff0ce743d6e4f60d243f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_s_list.html">SList</a>&lt; <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a922c83ecaab9ff0ce743d6e4f60d243f">_ioCompletes</a></td></tr>
<tr class="separator:a922c83ecaab9ff0ce743d6e4f60d243f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab735af8e6a6f6a5a4491afae96e3c9f7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_timeout_manager.html">TimeoutManager</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#ab735af8e6a6f6a5a4491afae96e3c9f7">_ManagerTimeout</a></td></tr>
<tr class="separator:ab735af8e6a6f6a5a4491afae96e3c9f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac73a13df92eb91e9d6878236f4349d59"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_signal_init.html">CSignalInit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#ac73a13df92eb91e9d6878236f4349d59">_linuxInit</a></td></tr>
<tr class="separator:ac73a13df92eb91e9d6878236f4349d59"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock">
<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00032">32</a> 行定义.</p>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="a56a36acfa1bc12143465fb5bcd235a5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56a36acfa1bc12143465fb5bcd235a5a">&#9670;&nbsp;</a></span>CIoPortService()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a201ce692c9dca6599e5c12d00167419b">DEF_BEG_LIBTOOLS</a> CIoPortService::CIoPortService </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_sock_data_8h.html#ae8573b45542da05c99e8e2154032d606">IoCompleteFunc</a>&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8cpp_source.html">IoPortService.cpp</a> 第 <a class="el" href="_io_port_service_8cpp_source.html#l00010">10</a> 行定义.</p>

</div>
</div>
<a id="af3a26ecd2d08e394ff350d814dc279be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3a26ecd2d08e394ff350d814dc279be">&#9670;&nbsp;</a></span>~CIoPortService()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual CIoPortService::~CIoPortService </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00036">36</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="a78ca0acac3a2f3ca5890cc9db01a2dfe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78ca0acac3a2f3ca5890cc9db01a2dfe">&#9670;&nbsp;</a></span>ClearAllDeque()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CIoPortService::ClearAllDeque </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8cpp_source.html">IoPortService.cpp</a> 第 <a class="el" href="_io_port_service_8cpp_source.html#l00078">78</a> 行定义.</p>

</div>
</div>
<a id="a3de4a75423e43c4100831feee1c67406"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3de4a75423e43c4100831feee1c67406">&#9670;&nbsp;</a></span>Close()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a> CIoPortService::Close </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>sock</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>关闭描述符 </p>

<p>在 <a class="el" href="class_c_epoll_service.html#a9fa3df69807bd345c91be5ccaebe51cd">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="a258367c891c1b3f4208c7b41e95b864d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a258367c891c1b3f4208c7b41e95b864d">&#9670;&nbsp;</a></span>DeliveryRecv()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CIoPortService::DeliveryRecv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_addr.html">CSockAddr</a> *&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em> = <code><a class="el" href="tools_8h.html#ab689500aaec0db066e3ac9483d3fe425">NullPtr</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>投递一个接收请求 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sock</td><td>已连接的套接字 </td></tr>
    <tr><td class="paramname">first</td><td>接收缓冲首地址 </td></tr>
    <tr><td class="paramname">end</td><td>接收缓冲尾地址 </td></tr>
    <tr><td class="paramname">func</td><td>完成函数指针 </td></tr>
    <tr><td class="paramname">invoker</td><td>用户传入的数据 </td></tr>
  </table>
  </dd>
</dl>

<p>在 <a class="el" href="class_c_epoll_service.html#a4b686add2271b0663112d6f854229ffc">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="a61ce383d1dc8faf0f821237e4cc438cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61ce383d1dc8faf0f821237e4cc438cf">&#9670;&nbsp;</a></span>DeliveryWrite()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CIoPortService::DeliveryWrite </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_addr.html">CSockAddr</a> *&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em> = <code><a class="el" href="tools_8h.html#ab689500aaec0db066e3ac9483d3fe425">NullPtr</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>投递一个写请求 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sock</td><td>已连接的套接字 </td></tr>
    <tr><td class="paramname">first</td><td>发送缓冲首地址 </td></tr>
    <tr><td class="paramname">end</td><td>发送缓冲尾地址 </td></tr>
    <tr><td class="paramname">func</td><td>完成函数 </td></tr>
    <tr><td class="paramname">addr</td><td>udp所需参数，如果NULL,则使用send函数，否则使用sendto函数 </td></tr>
    <tr><td class="paramname">invoker</td><td>用户数据 </td></tr>
  </table>
  </dd>
</dl>

<p>在 <a class="el" href="class_c_epoll_service.html#a2b4f22eb37444814e94c03c9e360bc41">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="a6a56a2a5a014ee11d4696eac5096d198"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a56a2a5a014ee11d4696eac5096d198">&#9670;&nbsp;</a></span>DelTimer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CIoPortService::DelTimer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_timer_info_8h.html#a3cdb46a4463fd5c4c305382491ab3e41">TimerInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>tinfo</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>删除定时器 </p>

<p>在 <a class="el" href="class_c_epoll_service.html#a4a98628adcd1758a791c97b4aa9acc27">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="a250b7ebec0e43bda54858b198e66c867"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a250b7ebec0e43bda54858b198e66c867">&#9670;&nbsp;</a></span>GetFlagId()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_sock_tools_8h.html#ac7875a7f6984241a06892f7041b4d30a">SOCKIDEN</a> CIoPortService::GetFlagId </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>获取唯一socket标识符 </p>

<p class="definition">在文件 <a class="el" href="_io_port_service_8cpp_source.html">IoPortService.cpp</a> 第 <a class="el" href="_io_port_service_8cpp_source.html#l00026">26</a> 行定义.</p>

</div>
</div>
<a id="afc1a07c4cf6e9aa6f2a00d157dfd9eed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc1a07c4cf6e9aa6f2a00d157dfd9eed">&#9670;&nbsp;</a></span>Init()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_c_sock_error.html">CSockError</a> CIoPortService::Init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>isServer</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>在 <a class="el" href="class_c_epoll_service.html#a79758f99ea45dc977a6962df8377347f">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="a4e27edba8096659e67f2f275eeeba984"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e27edba8096659e67f2f275eeeba984">&#9670;&nbsp;</a></span>IsInit()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool CIoPortService::IsInit </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>在 <a class="el" href="class_c_epoll_service.html#acc6b0ae9e8d9b39cf2a9f9c1a23ef522">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="a87b609526def283ffb20cc4b4c082473"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87b609526def283ffb20cc4b4c082473">&#9670;&nbsp;</a></span>IsStop()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool CIoPortService::IsStop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>服务是否停止 </p>

<p>在 <a class="el" href="class_c_epoll_service.html#a66ee6d1089bf2cd40f7a1417e3a3b4c7">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="a88ce9281be3952a469f8c3b6bf0f9d5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88ce9281be3952a469f8c3b6bf0f9d5b">&#9670;&nbsp;</a></span>NotifyStop()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CIoPortService::NotifyStop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>通知停止服务 </p>

<p>在 <a class="el" href="class_c_epoll_service.html#a422f78fde0b5a097ceec14c26fa58827">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="a2b82286514aa89ecd2a7470047c4845e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b82286514aa89ecd2a7470047c4845e">&#9670;&nbsp;</a></span>Post()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CIoPortService::Post </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em> = <code><a class="el" href="tools_8h.html#ab689500aaec0db066e3ac9483d3fe425">NullPtr</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>投递一个中断请求 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>回调函数 </td></tr>
    <tr><td class="paramname">invoker</td><td>用户数据 </td></tr>
  </table>
  </dd>
</dl>

<p>在 <a class="el" href="class_c_epoll_service.html#a525a96b60426d812c6146efb866b9279">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="aa9c6a13fde3ceae6b494568242681714"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9c6a13fde3ceae6b494568242681714">&#9670;&nbsp;</a></span>PostAcceptEx()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CIoPortService::PostAcceptEx </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>svrSock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>cliSock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em> = <code><a class="el" href="tools_8h.html#ab689500aaec0db066e3ac9483d3fe425">NullPtr</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>投递一个接收连接请求 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">svrSock</td><td>受监听的套接字 </td></tr>
    <tr><td class="paramname">cliSock</td><td>待接收的套接字 </td></tr>
    <tr><td class="paramname">func</td><td>完成回调函数 </td></tr>
    <tr><td class="paramname">invoker</td><td>用户传入的数据 </td></tr>
  </table>
  </dd>
</dl>

<p>在 <a class="el" href="class_c_epoll_service.html#abe35841d40c730849a20e57ce608fe88">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="af9546027933d2fcfcdc31b9366308ec3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9546027933d2fcfcdc31b9366308ec3">&#9670;&nbsp;</a></span>PostConnectEx()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CIoPortService::PostConnectEx </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em> = <code><a class="el" href="tools_8h.html#ab689500aaec0db066e3ac9483d3fe425">NullPtr</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>投递一个连接请求 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sock</td><td>待连接的套接字 </td></tr>
    <tr><td class="paramname">func</td><td>完成回调函数 </td></tr>
    <tr><td class="paramname">invoker</td><td>用户传入的数据 </td></tr>
  </table>
  </dd>
</dl>

<p>在 <a class="el" href="class_c_epoll_service.html#ad323799c02b088b56a557dd1a91c6ac1">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="a56a9ae4bb89bd85e21ae5507e3c6b093"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56a9ae4bb89bd85e21ae5507e3c6b093">&#9670;&nbsp;</a></span>Run()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool CIoPortService::Run </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>运行服务 </p>

<p>在 <a class="el" href="class_c_epoll_service.html#a855635ef38f2ac3681883c4d04ba4caa">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="a8eb92d255bda145631e1dc57e42d3dba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8eb92d255bda145631e1dc57e42d3dba">&#9670;&nbsp;</a></span>Run_One()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool CIoPortService::Run_One </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>运行一次服务 </p>

<p>在 <a class="el" href="class_c_epoll_service.html#af7843bae0a3a308e4ef61ef54d1e8071">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="aaba7ef56add86b61b7d3d95ac95b00bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaba7ef56add86b61b7d3d95ac95b00bc">&#9670;&nbsp;</a></span>SetIoBuffer() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CIoPortService::SetIoBuffer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *&#160;</td>
          <td class="paramname"><em>io</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_addr.html">CSockAddr</a> *&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8cpp_source.html">IoPortService.cpp</a> 第 <a class="el" href="_io_port_service_8cpp_source.html#l00038">38</a> 行定义.</p>

</div>
</div>
<a id="a31f5b0cd661829a0772d69f2558cf9c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a31f5b0cd661829a0772d69f2558cf9c7">&#9670;&nbsp;</a></span>SetIoBuffer() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CIoPortService::SetIoBuffer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *&#160;</td>
          <td class="paramname"><em>io</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8cpp_source.html">IoPortService.cpp</a> 第 <a class="el" href="_io_port_service_8cpp_source.html#l00051">51</a> 行定义.</p>

</div>
</div>
<a id="a6bb17ecf133490bae0d660eeeff35f76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bb17ecf133490bae0d660eeeff35f76">&#9670;&nbsp;</a></span>SetSocketBuffer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CIoPortService::SetSocketBuffer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_basic_service.html">CBasicService</a> *&#160;</td>
          <td class="paramname"><em>oldService</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>设置socket的tcp服务buffer </p>

<p class="definition">在文件 <a class="el" href="_io_port_service_8cpp_source.html">IoPortService.cpp</a> 第 <a class="el" href="_io_port_service_8cpp_source.html#l00064">64</a> 行定义.</p>

</div>
</div>
<a id="a5ffa1d9379ae7595d2febd119f42a738"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ffa1d9379ae7595d2febd119f42a738">&#9670;&nbsp;</a></span>SetTimer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CIoPortService::SetTimer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_timer_info_8h.html#a3cdb46a4463fd5c4c305382491ab3e41">TimerInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>tinfo</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>设置定时器 </p>

<p>在 <a class="el" href="class_c_epoll_service.html#afc23d484e502e76a9e7710038e822e53">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="aedf29d5a0b744177d997d156068545bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aedf29d5a0b744177d997d156068545bf">&#9670;&nbsp;</a></span>SetWriteLog()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CIoPortService::SetWriteLog </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>bWriteLog</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>设置日志输出函数 </p>

<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00114">114</a> 行定义.</p>

</div>
</div>
<a id="ae247b9ad53c577481a6a17713e6a0685"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae247b9ad53c577481a6a17713e6a0685">&#9670;&nbsp;</a></span>Shutdown()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a> CIoPortService::Shutdown </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>停止服务,该函数会等待所有的线程退出 </p>

<p>在 <a class="el" href="class_c_epoll_service.html#ad23338defe1ba3a98a4e4516549161e2">CEpollService</a> 内被实现.</p>

</div>
</div>
<a id="ac30315805f5476c9e5ff36f3fa542485"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac30315805f5476c9e5ff36f3fa542485">&#9670;&nbsp;</a></span>UpdateTimer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool CIoPortService::UpdateTimer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_timer_info_8h.html#a3cdb46a4463fd5c4c305382491ab3e41">TimerInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>tinfo</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>更新定时器 </p>

<p>在 <a class="el" href="class_c_epoll_service.html#a2157c1dd183cde8099b87c460ca2188c">CEpollService</a> 内被实现.</p>

</div>
</div>
<h2 class="groupheader">类成员变量说明</h2>
<a id="a4ff69b422ec8562a5dee6b8f7cef5cc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ff69b422ec8562a5dee6b8f7cef5cc0">&#9670;&nbsp;</a></span>_bStop</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CIoPortService::_bStop</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00124">124</a> 行定义.</p>

</div>
</div>
<a id="a407c9ef3c1dba3149bfeee7a3efbbf01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a407c9ef3c1dba3149bfeee7a3efbbf01">&#9670;&nbsp;</a></span>_bWriteLog</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CIoPortService::_bWriteLog</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00123">123</a> 行定义.</p>

</div>
</div>
<a id="aa0c2ca982c8e1aa9f810291b7de79468"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0c2ca982c8e1aa9f810291b7de79468">&#9670;&nbsp;</a></span>_completeFunc</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_sock_data_8h.html#ae8573b45542da05c99e8e2154032d606">IoCompleteFunc</a> CIoPortService::_completeFunc</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00127">127</a> 行定义.</p>

</div>
</div>
<a id="a523d78403f114ad8b1750bf408f34084"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a523d78403f114ad8b1750bf408f34084">&#9670;&nbsp;</a></span>_dwFlagId</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_sock_tools_8h.html#ac7875a7f6984241a06892f7041b4d30a">SOCKIDEN</a> CIoPortService::_dwFlagId</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00125">125</a> 行定义.</p>

</div>
</div>
<a id="a3dc61fe79fcc2d07518bfa701bd2f779"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3dc61fe79fcc2d07518bfa701bd2f779">&#9670;&nbsp;</a></span>_hWaitServerStop</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a01e895c2df346ffe662bbe69686d8d51">SYNCHANDLE</a> CIoPortService::_hWaitServerStop</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00129">129</a> 行定义.</p>

</div>
</div>
<a id="a922c83ecaab9ff0ce743d6e4f60d243f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a922c83ecaab9ff0ce743d6e4f60d243f">&#9670;&nbsp;</a></span>_ioCompletes</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt;<a class="el" href="class_s_list.html">SList</a>&lt;<a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt;<a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a>&gt; &gt; &gt; CIoPortService::_ioCompletes</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00130">130</a> 行定义.</p>

</div>
</div>
<a id="ac73a13df92eb91e9d6878236f4349d59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac73a13df92eb91e9d6878236f4349d59">&#9670;&nbsp;</a></span>_linuxInit</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_signal_init.html">CSignalInit</a> CIoPortService::_linuxInit</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00136">136</a> 行定义.</p>

</div>
</div>
<a id="ab735af8e6a6f6a5a4491afae96e3c9f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab735af8e6a6f6a5a4491afae96e3c9f7">&#9670;&nbsp;</a></span>_ManagerTimeout</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt;<a class="el" href="class_timeout_manager.html">TimeoutManager</a>&gt; CIoPortService::_ManagerTimeout</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00131">131</a> 行定义.</p>

</div>
</div>
<a id="af2c36a2bd4d03cb124cdd6c9bef5bb3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2c36a2bd4d03cb124cdd6c9bef5bb3c">&#9670;&nbsp;</a></span>_mutexDeque</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_recursive_mutex.html">CRecursiveMutex</a> CIoPortService::_mutexDeque</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00139">139</a> 行定义.</p>

</div>
</div>
<a id="abd6cae804dc7cf92c7c79d9e0549c176"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd6cae804dc7cf92c7c79d9e0549c176">&#9670;&nbsp;</a></span>_threadNum</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a6a2b55a6391419ed0b7b9da06e094b4b">INT64</a> CIoPortService::_threadNum</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00126">126</a> 行定义.</p>

</div>
</div>
<a id="ae4a7f39422d33ef77ca8ea89b749d613"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae4a7f39422d33ef77ca8ea89b749d613">&#9670;&nbsp;</a></span>_timeoutFunc</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_sock_tools_8h.html#a65db86524d66ff5c871579e2dacf12ca">lpTimeoutCompleteFunc</a> CIoPortService::_timeoutFunc</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a> 第 <a class="el" href="_io_port_service_8h_source.html#l00128">128</a> 行定义.</p>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>H:/project/LibTools/src/socket/internal/<a class="el" href="_io_port_service_8h_source.html">IoPortService.h</a></li>
<li>H:/project/LibTools/src/socket/internal/<a class="el" href="_io_port_service_8cpp_source.html">IoPortService.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者 &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16
</small></address>
</body>
</html>
